#ifndef suite_h
#define suite_h


// forward declaration
struct interface_t;


/*
 * Execute the perft on the positions in filename.
 *
 * The file must contain EPD lines annotated with the non standard
 * 'Dnnn' opcode.  The results of the test are printed on the standard
 * output.
 */
void perftsuite(const char* filename);


/*
 * Execute a search test on the positions in filename.
 *
 * The file must contain EPD lines annotated with the 'bm' opcode.  If
 * the 'dm' opcode is also present, search depth is limited
 * accordingly. Any other limit (time, depth...) is derived from the
 * current configuration. The results of the test are printed on the
 * standard output.
 */
void searchsuite(const char* filename,
		 const struct interface_t* iface);


/*
 * Execute a static evaluation test on the positions in filename.
 *
 * The file must contain EPD lines.  If the side to move is not under
 * check the mirrored position is also evaluated.  Evaluation scores
 * are reported from white player's point of view. The results of the
 * test are printed on the standard output.
 */
void evalsuite(const char* filename);

#endif  // suite_h
